﻿using System;
using TS.Bussiness;
using TS.Entities;
using TS.Commons;
using System.Drawing;

namespace Tranco.Views
{
    public partial class AddSchedule : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetAllGateway();
                GetAllOwner();
                GetAllNumberBike();
                string d = "0" + DateTime.Today.Day.ToStringOrDefault();
                string m = "0" + DateTime.Today.Month.ToStringOrDefault();
                string y = DateTime.Today.Year.ToStringOrDefault();

                txtStartDate.Text = d.Substring(d.Length - 2,2) + "/" +
                                    m.Substring(m.Length - 2, 2) + "/" +
                                    y;
            }
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            lblStatus.ForeColor = Color.Red;
            lblStatus.Text = "";

            Schedule sc = new Schedule();
            sc.GatewayId = drGateway.SelectedItem.Value.ToNumeric();
            sc.OwnerId = drOwner.SelectedItem.Value.ToNumeric();
            sc.NumberBikeId = drNumberBike.SelectedItem.Value.ToNumeric();
            sc.Status = drStatus.SelectedItem.Value.ToStringOrDefault();
            sc.NumberCont = txtNumberCont.Text.ToUpper().ToStringOrDefault();

            sc.Content = txtDetails.Text;
            sc.Status = drStatus.SelectedItem.Text.ToStringOrDefault();

            int start = txtStartDate.Text.ToDateKey();
            if (start >= 0)
                sc.StartDate = start;
            else
            {
                lblStatus.Text = "Sai định dạng ngày tháng.";
                return;
            }

            int end = txtEndDate.Text.ToDateKey();
            if (end >= 0)
                sc.EndDate = end;
            else
            {
                lblStatus.Text = "Sai định dạng ngày tháng.";
                return;
            }

            if (sc.EndDate > 0 && sc.EndDate < sc.StartDate)
            {
                lblStatus.Text = "Ngày về không được nhỏ hơn ngày đi.";
                return;
            }


            var bu = new ScheduleBussiness();

            var result = bu.InsertSchedule(sc);

            if (result > 0)
            {
                lblStatus.ForeColor = Color.Blue;
                lblStatus.Text = "Thêm lịch trình thành công.";
            }
            else
            {
                lblStatus.Text = "Không thêm được lịch trình.";
                if (result == -2)
                {
                    lblStatus.Text = "Lịch trình đã tồn tại";
                }
                if (result == -3)
                {
                    lblStatus.Text = "Ngày đi sai.";
                }
                if (result == -4)
                {
                    lblStatus.Text = "Ngày về sai.";
                }
            }

        }

        private void GetAllGateway()
        {
            GatewayBussiness bs = new GatewayBussiness();
            drGateway.DataSource = bs.GetAllGateway();
            drGateway.DataTextField = "Name";
            drGateway.DataValueField = "GatewayId";
            drGateway.DataBind();
        }

        private void GetAllOwner()
        {
            OwnerBussiness bs = new OwnerBussiness();
            drOwner.DataSource = bs.GetAllOwner();
            drOwner.DataTextField = "Name";
            drOwner.DataValueField = "OwnerId";
            drOwner.DataBind();
        }


        private void GetAllNumberBike()
        {
            NumberBikeBussiness bs = new NumberBikeBussiness();
            drNumberBike.DataSource = bs.GetAllNumberBike();
            drNumberBike.DataTextField = "NumberPlate";
            drNumberBike.DataValueField = "NumberBikeId";

            drNumberBike.DataBind();
        }
    }
}